Ext.define('AgenteNET.controller.utilitarios.Papeis', {
	extend : 'Ext.app.Controller',
	views : [ 'utilitarios.papeis.Listar', 
	          'utilitarios.papeis.Novo',
	          'utilitarios.papeis.Editar' 
	          ],
	models : [ 'utilitarios.Papel' ],
	init : function() {
		this.control({
		});
		this.inicializado = true;
	},
    /**
    * @id 
    * @nome utilitariosPapeisListar
    * @rotulo Listar papeis
    * @titulo Lista de papeis do usuario
    * @descricao Esta funcao sao tem a finalidade de listar todos os papeis cadastrados no sistema fim.
    * @autor 
    * @icone 
    * @video XXXXXXXXX
    * @situacao A
    * @chamadas DispositivoMenuGlobal
    */    
    Listar : function(el){ 
		var grid = this.getView('AgenteNET.view.utilitarios.papeis.Listar').create();
		this.dispositivo.window(el, grid, true);
		return grid;
	},
    /**
    * @nome utilitariosPapeisNovo
    * @rotulo criar papel
    * @titulo Criando novo papel de usuario
    * @descricao Esta funcao sao tem a finalidade de criar um novo papel para os usuários do sistema.
    * @situacao A
    * @chamadas utilitariosPapeisListar, DispositivoMenuGlobal
    */    
	Novo : function(el) {
		var form = this.getView('AgenteNET.view.utilitarios.papeis.Novo').create();
		form.loadRecord(this.getStore('utilitarios.Papeis').model.create({}));
		this.dispositivo.window(el, form);
		return form;
	},
    /**
    * @nome utilitariosPapeisEditar
    * @rotulo Editar papel
    * @titulo Editado papel de usuario
    * @descricao Esta funcao sao tem a finalidade de editar o papel para os usuários do sistema.
    * @situacao A
    * @chamadas utilitariosPapeisListar
    */    
	Editar : function(el,model) {
		var form = this.getView('AgenteNET.view.utilitarios.papeis.Editar').create();
		form.loadRecord(model);
		this.dispositivo.window(el, form);
	},
	
	/*
	loadTree:function(form,id){
		if(id==undefined)id='';
		form.down('treepanel[recurso="funcoes"]').getStore().setProxy({
			type : 'rest',
			url : '/agentenet/public/utilitarios/Papeis/'+id,
			extraParams : {
				tree : 'funcoes',
			},
			reader : {
				type : 'json',
				root : 'data',
			},
		});
		form.down('treepanel[recurso="funcoes"]').store.load();
		form.down('treepanel[recurso="usuarios"]').getStore().setProxy({
			type : 'rest',
			url : '/agentenet/public/utilitarios/Papeis/'+id,
			extraParams : {
				tree : 'usuarios',
			},
			reader : {
				type : 'json',
				root : 'data',
			},
		});
		form.down('treepanel[recurso="usuarios"]').store.load();
		return form;
	},
	*/

	Adicionar: function(el){
		var	form = el.up('form'),
		model = this.getModel('utilitarios.Papeis').create(form.getValues());
		model.save();
	},
	Salvar: function(el){
		var form = el.up('form'), model = form.getRecord();
		model.set(form.getValues());
		model.save();
	},
    /**
    * @nome utilitariosPapeisExcluir
    * @rotulo Excluir papel
    * @titulo Excluindo o papel de usuario
    * @descricao Esta funcao tem a finalidade de excluir o papel para os usuários do sistema.
    * @situacao A
    * @chamadas utilitariosPapeisEditar
    */    
	Excluir: function(el){
		if(el.up('form')){
			var form = el.up('form'), model = form.getRecord();
			model.destroy();
		}else{
			var grid = el.up('grid'),
			    records = grid.getSelectionModel().getSelection();
			for(i in records)
				records[i].destroy();
		}
	},

});